var NaUtils = {
	bindTable : function(data, name, zeroMsg, nullMsg) {
		if (!data) {
			msg.alert("无服务端返回，服务端返回值格式错误，请技术人员检查服务器请求响应。");
			return;
		}
		if (!name) {
			name = "querytable";
		}
		if (!zeroMsg) {
			zeroMsg = "0条查询结果，没有任何符合条件的记录，请更换其他查询条件后重试。";
		}
		if (!nullMsg) {
			nullMsg = "发生未知错误，没有获得任何操作结果信息，也许服务器发生了未处理的异常，请稍后重试。";
		}
		if (data.success) {
			$("#" + name).setTableData(data[name], true);
			$("#" + name).setPageCount(data.pagecount);

			if (data[name].length == 0) {
				msg.alert(zeroMsg);
			}
		} else {
			if (data.msg) {
				msg.alert(data.msg);
			} else {
				msg.alert(nullMsg);
			}
		}
	},
	showMsg : function(data, handler, successHandler, errorHandler) {
		if (!data) {
			data = {
				success : false,
				msg : '操作失败。'
			};
		}
		if (!data.msg) {
			if (data.success) {
				data.msg = "操作成功。";
			} else {
				data.msg = "操作失败。";
			}
		}
		if ($.isFunction(handler) && data.success) {
			msg.alert({
				message : data.msg,
				handler : handler
			});
		} else {
			msg.alert(data.msg);
		}
		if (data.success) {
			if (successHandler && $.isFunction(successHandler)) {
				successHandler();
			}
		} else {
			if (errorHandler && $.isFunction(errorHandler)) {
				errorHandler();
			}
		}
	}
};

$(function() {
	var b = document.body;

	$(document).ajaxComplete(function() {
	});

	$(document).ajaxStop(function() {
	});

	$(document).ajaxStart(function() {
		if (!EasyUtils.isSilentAjax()) {
			$(b).mask("开始处理数据,请稍候...");
		}
	});

	$(document).ajaxError(function(event, xhr, settings, err) {
		if (!EasyUtils.isSilentAjax()) {
			$(b).unmask();
			EasyUtils.setSilentAjax(false);
			if (xhr.readyState == 0) {
				msg.alert("发生本地错误，尚未初始化请求，请先调用open方法。");
			} else if (xhr.readyState == 1) {
				msg.alert("发生本地错误，尚未发送请求，请先调用send方法。");
			} else if (xhr.readyState == 2) {
				msg.alert("发生数据接收错误，请求返回状态错误，请检查网络以及消息头状态。");
			} else if (xhr.readyState == 3) {
				msg.alert("发生数据接收错误，也许是由于网络暂时关闭数据未接收完整，请稍后重试。");
			} else {
				if (xhr.status < 400) {
					msg.alert("发生错误返回，错误代码:" + xhr.status + "，请联系管理员解决。");
				} else if (xhr.status < 500) {
					msg.alert("发生请求错误，目标操作已经不存在或者被移动，请重新刷新页面重试，如果还出现该问题请联系管理员解决。");
				} else {
					msg.alert("发生服务端错误，服务端工作结果异常，请重新刷新页面重试，如果还出现该问题请联系管理员解决。");
				}
			}
		}
	});

	$(document).ajaxSend(function() {
		if (!EasyUtils.isSilentAjax()) {
			$(b).unmask();
			$(b).mask("处理请求已发送,请稍候...");
		}
	});

	$(document).ajaxSuccess(function() {
		if (!EasyUtils.isSilentAjax()) {
			$(b).unmask();
			EasyUtils.setSilentAjax(false);
		}
	});
});